package com.sure.minion.services.base.handler;

import com.sure.minion.services.base.handler.exception.DefaultAutoHandledException;

/**
 * @Description 异常自定义描述信息Util
 * @author syuan
 * @date 2015年5月19日  下午1:35:34
 * Company: TravelSky
 */
public class ExceptionDescUtil {
	
	/**
	 * @Description 获取异常描述信息
	 * @param e 异常信息
	 * @return
	 * @author syuan
	 * @date 2015年5月19日  下午3:05:12
	 */
	public static DescriptionGroup getExceptionDescription(Throwable e) {
		DefaultAutoHandledException defaultAutoHandledException = null;
		//如果是自定义异常，则直接转换，否则作为统一的未知异常
		if (e instanceof DefaultAutoHandledException) {
			defaultAutoHandledException = (DefaultAutoHandledException) e;
		} else {
			defaultAutoHandledException = new DefaultAutoHandledException(DefaultDescription.UNKNOWN_EXCEPTION, e);
		}

		return ResponseDefinitionFactory.getDescriptionGroup(defaultAutoHandledException);
	}
}
